import request from "../utils/request";

/**
 * 获取商品列表
 * @param {Object} params - 查询参数
 * @param {string} [params.title] - 商品名称模糊查询
 * @param {number} [params.categoryId] - 分类ID
 * @param {number} [params.pageNo=1] - 页码
 * @param {number} [params.pageSize=10] - 每页条数
 */
export function getProductList(params) {
    return request({
        url: "/api/product/list",
        method: "get",
        params
    });
}

/**
 * 获取商品详情
 * @param {number|string} id - 商品ID
 */
export function getProductDetail(id) {
    return request({
        url: `/api/product/${id}`,
        method: "get",
    });
}

/**
 * 新增或修改商品
 * @param {object} data - 商品数据
 * @param {string} [data.id] - 商品ID（修改时必传）
 * @param {string} data.title - 商品名称
 * @param {string} [data.subtitle] - 商品副标题
 * @param {string} [data.brand] - 品牌
 * @param {string} data.categoryId - 三级分类ID
 * @param {string} data.categoryPath - 分类路径（格式：",1,2,3,"）
 * @param {string} data.mainImage - 主图URL
 * @param {string} [data.images] - 图片集URL（逗号分隔）
 * @param {string} [data.description] - 商品详情
 * @param {number} data.price - 销售价
 * @param {number} [data.originalPrice] - 原价
 * @param {number} data.stock - 库存
 * @param {1|2} data.status - 状态（1=上架，2=下架）
 */
export function saveProduct(data) {
    return request({
        url: "/api/product",
        method: "post",
        headers: {
            'Content-Type': 'application/json' // 明确指定JSON格式，避免后端解析问题
        },
        data,
    });
}

/**
 * 获取OSS上传策略
 * @returns {Promise<Object>} OSS配置信息
 * @returns {string} data.host - OSS访问域名
 * @returns {string} data.accessid - OSS AccessKeyId
 * @returns {string} data.policy - 上传策略
 * @returns {string} data.signature - 签名
 * @returns {string} data.dir - 上传目录
 * @returns {number} data.expire - 过期时间
 */
export function getOssPolicy() {
    return request({
        url: "/api/oss/policy",
        method: "get",
    });
}


/**
 * 删除商品
 * @param {number|string} id - 商品ID
*/
export function deleteProduct(id) {
    return request({
        url: `/api/product/${id}`,
        method: "delete",
    });
}

/**
 * 商品上机/下架
 * @param {number|string} id - 商品ID
 * @param {1|2} status - 状态（1=上架，0=下架）
*/
export function updateProductStatus(id, status) {
    return request({
        url: `/api/product/${id}/status`,
        method: "put",
        data: { status },
    });
}
